/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package br.com.proescola.dao;

import br.com.proescola.modelo.Aluno;
import br.com.proescola.modelo.Curso;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;

/**
 *
 * @author Joao
 */
public class CursoDAO {

    private Connection conexao;
    //private PreparedStatement stmt;

    public CursoDAO() throws SQLException {
        this.conexao = CriaConexao.getConexao(); //Istancia um objeto Connection, que é o parâmetro da classe CriaConexao.java
    }

    public void cadastrar(Curso c1) throws SQLException {
        //Prepara a estrutura da Query e declara o objeto PreparedStatement
        String sql = "INSERT INTO curso (nm_curso, cd_professor_cd) VALUES (?, ?)";
        PreparedStatement stmt = conexao.prepareStatement(sql);
        String ret = "erro";
        //Seta os valores que vão ser inseridos na Query
        stmt.setString(1, c1.getNome());
        stmt.setInt(2, c1.getIdProfessor());
        //Executa a inserção SQL
        stmt.execute();
        stmt.close();
    }

    public List<Curso> getLista() throws SQLException {
        String sql = "SELECT * FROM curso";
        PreparedStatement stmt = this.conexao.prepareStatement(sql);
        ResultSet rs = stmt.executeQuery();

        List<Curso> cursos = new ArrayList<Curso>();
        while (rs.next()) {
            Curso c1 = new Curso(rs.getInt("cd_curso"), rs.getString("nm_curso"), rs.getInt("cd_professor_cd"));
            cursos.add(c1);
        }
        rs.close();
        stmt.close();
        return cursos;
    }

    public List<Curso> getById(String x) throws SQLException {
        String sql = "SELECT * FROM curso WHERE nm_curso LIKE ?";
        PreparedStatement stmt = this.conexao.prepareStatement(sql);
        stmt.setString(1, ("%" + x + "%"));
        ResultSet rs = stmt.executeQuery();
        List<Curso> cursos = new ArrayList<Curso>();
        while (rs.next()) {
            Curso c1 = new Curso(rs.getInt("cd_curso"), rs.getString("nm_curso"), rs.getInt("cd_professor_cd"));
            cursos.add(c1);
        }
        rs.close();
        stmt.close();
        return cursos;
    }
}
